Майнор "Интеллектуальный анализ данных"

Курс "Современные методы машинного обучения"

Лабораторная работа №2. Object Detection.

Data

Install library for processing the labeling

pip install xmltodict

В этом задании потребуется обучить детектор фруктов на изображении. Данные находятся в архиве data.zip. Данные уже поделены на train и test.

Датасет для трех классов.





Функции для вычисления mAP.




Часть 1.

Вес в общей оценке - 0.4

В данной части вам нужно решить задачу детектирования фруктов "без классификации". Для этого все три класса нужно объединить в один (нужно внести соотвествующие изменения в датасет).

Задание 1.

Примените обученные детекторы из torchvision.models - Faster R-CNN, RetinaNet, SSD (можно только с одним backbone, можно все попробовать) - и оцените качество детекции на тестовом датасете.

Задание 2.

Обучите детекторы из задания выше на обучающем датасете, оцените качество на тестовом. При необходимости, подберите гиперпараметры - optimizer, lr, weight_decay etc.
Выполните обучение в двух вариантах: со случайной инициализацией весов и с загрузкой весов уже обученной модели. Сравните качество.

Задание 3.

Задание 4.

Нарисуйте предсказанные bounding box'ы для любых двух картинок из тестового датасета и каких-нибудь картинок из интернета (релевантных - где есть эти фрукты - и тех, где этих фруктов нет).

Задание 5.

Реализуйте и примените Non-maximum Suppression. Оцените (визуально и по метрикам), как его использование влияет на качество детекции.
NB: Чтобы продемонстрировать эффективность применения алгоритма, возможно, нужно будет взять достаточно низкий порог конфиденса.

Фильтр работает очень хорошо и очищает картинку от лишних боксов




Часть 2.

Вес в общей оценке - 0.4

Выполните задания 2-5 из предыдущей части для случая 3-х классов (как в изначальном датасете).

Задание 2

Задание 3

Задание 4

Задание 5




Часть 3.

Вес в общей оценке - 0.2

Обучите модель для object detection для трех классов на обучающем датасете и добейтесь PR AUC не менее 0.91 на тестовом.
Баллы за задание вычисляются по формуле: min(2, 2 * Ваш auc / 0.91).




Бонусные задания.

  1. При обучении используйте аугментации (в первую очередь пространственные) из albumentations или torchvision.transforms.
  2. Возьмите одну из детекционных архитектур (желательно, не старее 2020 года), у которой выложены тренировочный код и чекпоинты на гитхабе, обучите и провалидируйте ее на данных этой лабораторной.